package seqlist.oj;

public class Num83 {
    public ListNode deleteDuplicates(ListNode head) {
//        ListNode dummyHead=new ListNode(101);
//        ListNode prev=dummyHead;
//        dummyHead.next=head;
//        ListNode cur = prev.next;
//        while(cur!=null) {
//            if (prev.val == cur.val) {
//              prev.next=cur.next;
//            } else {
//                prev = prev.next;
//            }
//            cur=cur.next;
//        }
//        return dummyHead.next;


        //递归
        if(head==null || head.next==null){
            return head;
        }
            ListNode cur=head.next;
            if(cur.val!=head.val){
                head.next=deleteDuplicates(cur);
                return head;
        }else{
                while (cur!=null && head.val==cur.val){
                    cur=cur.next;
                }
                //此时cur是第一个不与head重合的元素 在此处调用deleteDuplicataes函数就可以删除掉cur位置后的所有并返回剩余的链表
                return deleteDuplicates(cur);
            }
    }
}
